#include "head_s.h"

void * thread_main(void *p){
    char mysql_user[100] = {0};
    getparameter("mysql_user", mysql_user);
    char mysql_password[100] = {0};
    getparameter("mysql_password", mysql_password);
    char mysql_database[100] = {0};
    getparameter("mysql_database", mysql_database);

    status_t *statu = (status_t*)p;

    pthread_mutex_lock(&statu->lock); 
    MYSQL* mysql = mysql_init(NULL);                
    mysql_real_connect(mysql,"localhost", mysql_user, mysql_password, mysql_database, 0 ,NULL, 0);
    pthread_mutex_unlock(&statu->lock);


    while(1){
        // 1, 从队列中获取net_fd 
        int net_fd =0;
        pthread_mutex_lock(&statu->lock);

        while(statu->queue.size <=0 && statu->exit_flag ==0){
            // 没有要求退出的信号, 队列中也没有任务
            pthread_cond_wait(&statu->cond, &statu->lock);
        }
        if(statu->exit_flag != 0){
            // 要退出
            printf("退出\n");
            pthread_mutex_unlock(&statu->lock);
            pthread_exit(NULL);
        }

        // 说明队列中, 有新的客户端的net_fd
        net_fd = statu->queue.head->net_fd ;
        // 出队
        deQueue(&statu->queue);

        pthread_mutex_unlock(&statu->lock);

        // 2, 客户端进行通信
        do_worker(net_fd, mysql);

        close(net_fd);
    }

    return NULL;
}

